Computer peripheral device control



Feb. 20, 1968 1. J. SCHELL, JR

COMPUTER PERIPHERAL DEVICE CONTROL 2 Sheets-Sheet 1 Filed May 5, 1965 e mu 1 m T e um w 4 i... i I 0 M J 20 Ilv i I l l I I I. I 1 I I l I 0, 7 6 v 6 C I r 4 U fi u w/ a w fife %W i! U m H N. w. M116 k 1 .3 214 5 xi 7 K y mi? k 3 E 3 2 6 4 1 w. u w r warm Wa n :0 m c @MM gm w? aw i u P Pi fl d fi 0 FD, M :V-. IWVL W. p p z A 2 7 WM flu 7, AM 7 n w Mm ,M/N VM Feb. 20, 1968 J. J. SCHELL, JR

COMPUTER PERIPHERAL DEVICE CONTROL 2 Sheets-Sheet 2 Filed May 5, 1965 .fiwir/ be BY w/ K WM imamez/ United States Patent 0 aware Filed May 5, 1965, Ser. No. 453,254 7 Claims. (Cl. 34t)-172.5)

This invention relates to computers. and particularly to means for controlling communications between the basic processor unit of a computer and a plurality of peripheral inputcutput devices such as magnetic tape stations, magnetic drums. card and paper tape punchers and readers. printers, etc.

A computer basic processor unit is normally capable of receiving and supplying data at much higher rates than the peripheral input-output devices. Because of this datahandlicg speed disparity. the basic processor unit can proceed with the execution of its stored program except for periodic interruptions to exchange data with one or more continuously-running peripheral units. However, computer systems commonly include such a large number of peripheral units that the basic processors capability to service the peripheral devices is exceeded if all or a large number of the peripheral devices are running at the same time. The number of peripheral devices which can be running and be serviced by the central processor unit without loss of data is atTcctcd by the data handling speeds of the peripheral devices. The data handling speeds of peripheral devices vary considerably in accordance with limitations imposed by their respective mechanical mechanisms. Therefore, the basic processors may be capable of servicing a large number of lowwpred peripheral devices, only a small number of high-speed peripheral devices. or an intermediate number of mixed low-speed and high-speed peripheral devices.

The energization of a greater number of mixed-speed peripheral devices than can be serviced by the basic processor unit may be prevented by assigning a relative speed-we ght number," con isting of binary digits. to each peripheral device. When a peripheral device is energized, the corresponding speed-weight number is stored. Then. when an additional peripheral device is to be encrgizcd. its speed-weight number and the stored speedweight are added. The resulting sum is then compared with a processor-capability number to determine whether the ad iitional peripheral device will overload the processor. The described procedure requires either a large amount of special-purpose hardware, or a large amount of main memoy space and computer time.

It is therefore a general object of this invention to provide a computer system having an improved means for preventing the energization of a peripheral device when its energization would cause an overloading of the basic processor units ability to service the peripheral units.

In accordance with an example of the invention. there is provided a basic processor unit having start request outputs for each of a corresponding number of peripheral device units. and a current threshold detector circuit having a common input terminal. A plurality of peripheral device units each have a busy signal output connected through an or gate, a transistor switch circuit and a re stor to the common input terminal of the threshold detector circuit. The resistor associated with each peripheral device unit has a value indicative of the proportion of the basic processor units time required in the servicing of the corresponding peripheral device unit. Each start request output from the basic processor unit is coupled to the input of the or gate associated with the corresponding one of the peripheral device units. The output of the threshold detector circuit is applied to the basic processor unit to inhibit the cnergization of a peripheral device unit it" the time required for time-interlaced servicing of the peripheral device unit, when added to the time required for scrvic' i already-energized peripheral device uni s. would exceed the basic processor units capability.

in the drawing:

HUI is a block diagram of a computer system constructed according to the teachings of the invention; and

H6. 2 is a circuit diagram of a portion of the block diagram oi H6. 1.

Ref rring now in greater detail to FIG. 1 of the drawing. there is shown a computer basic processor unit 10 including a bi speed main memory 12 having an address regi ter H and a data rcgcster 16. The address register 14 is connected to receive an address from an address generator 18 which may be controlled by a program counter 20. The program counter 20 has a decrcmcnting input 22 for restor ng the count therein to a count representing the address of a preceding instruction. The data register 16 is connected by lines 2-! to il data bus 26.

The data bus 26 is connected by lines 28 to inputs of an in-truction register including an operation code register 36 and a register 32 used as a peripheral unit register when the in truction is one involving a peripheral device. The contents of register 32 is coupled to decoder 34 having four outpufs any one of which is energized at a time to llll'tlfictli a start request for any one of a corrcsponding number oi peripheral device units. The outputs of decoder 34 are connected through gates 36 having outputs 41, 42, 4.3 and 44. The operation code regi-tcr 31) is connected to a decoder 38 having an output 39 connected to enable gates 36 when the o eration code supplied to decoder 38 is the operation code of one of a number of input-output instructions. Such input-output instructions may include iu-truciions for erase, rsud forward, read reverse, sense, write and write control. Gates 46 have inputs coupled to the outputs ll, 42. 43 and 44 of gates 36. Gates 46 hav-J corresponding start reque t signal output lines 41'. 42", 43v and 44. Gates #56 also have an enablinginhibiting input 48. The four lines 41. 42. 43 and 44 and the four lines ll. 43', 43' and 41" are for carrying start request signals for tour corresponding peripheral device units. 'ihe quantity four of mripheral device units is u ed merely to illustrate a plurality of units. A control unit 4) represents remaining conventional units in the basic proecssor not In. There the. of course. many conventional cross connections (not shown in addition to those which are shown for the purpose of illustrating the inventi n.

A plurality of peripheral input-output device units 51, 2, 53 and 54 are each competed over respective lines 56 1. the data bus 26 for transmission and reception of data. :BCl] peripheral device unit includes a conventional pcripl'ieral inputoutput device and associated control circuiiry. Each periphc al device unit may include one or ntore similar peripheral input-output devices. For example. peripheral device unit 51 may include one or more magnetic tape stations, unit 52 may include one or more magnetic drum storage units. unit 53 may include one or more punched card readers and unit 54 may include one or more line printers. If a plurality of similar peripheral in utbutput devices are included in a peripheral device unit, on y one of the devices is used at a time. If a plurality of .lil'llllli devices, such as tape stations. are to be operated at the same time, they are included in separate per pheral device units.

Each peripheral device unit 51, 52, 53 and 54 has an input connected to a respective start request line 41, 42, 43' and 44'. Additional conventional control connections (not shown] may be provided between the peripheral device units and the basic processor unit It Each peripheral device unit also has an individual busy signal output connected over a respective line 57 to an input of a respective or ga e 58. Each or gate 58 also has an input from a respective one of the start request lines il, 42. .3 and 4-3. Each gate 58 has an output 59 connected through a respective switch circuit 66 and a re pective speed weight resistor 61, 62. 63 or 64 to a summing bus 65. Each of the speed-Weight resistors 61. 62, 63 and 64 has a value indicative of the proportion of the basic processor units time required in the servicing oi the corresponding respective peripheral device units 53. i and 54. The speed-Weight resistors 61. 62, 63 and 64 have values which are inversely proportional to the time required for their tirne-intcrlaced servicing by the basic processor unit It]. The summing bus 65 is connected to a common signal input terminal ol a current threshold detector 66. The dctcc or 66 has an output 67 which is connected over line 48 to an inhibit input of gates 46 and over line 6) and through inverter 1 to the dcercmenting input 22 of program counter 20.

Reference is now made to FIG. 2 for a description in greater detail of the switch circuits 60, the speed-weight re. stors 6K. 62. 63 and 6L and the current threshold dctcctor 66. The threshold detector 66 includes a threshold transistor T7 and an input transistor T6 hotll of which have a common emitter resistor 72 so that an increase in conduction through one transistor causes n reduction oi condtetion through the other transistor. Transistors T5 and T6 are connected as a socalled Burlington pair. as are transistors T7 and T3. A constant reference threshold potential is supplied to the base oi threshold transistor T7 by the circuits of transistors T8 and T9. The input potential applied to the base oi input transistor T6 is determined by the current flowing through resistor R. t l here is only .ht voltage drop across the b emitter junction of lor T5.) The amount or current llorvin; through resistor R is. in turn, allcctcd by the conductive states of switch trarrsir-tors T1, 2. T3 and T4 in switch circuits (iii. The current through the icsistr s 61, 62. 65 and 64 may be traced through the path starting :rt the -l 3t) \r' lt terminal 7-1, going through the resistor it. and the sinuming hus and branching through some ot' the resistors 61, 62. 63 and 64 and the collector-emitter paths or corresponding ones of transistors T1, T2, T3 and T4 to ground.

Threshold transistor T7 is normally oft, and input transistor T6 is normally 011" due to current in the voltdivider circuit including resistor R and zener diode 76. input transistor T6 remains *on" unle s or until the sum of the currents drawn by transistors 'I 1, T2, T3 and T-i through resistor R cause the potential at the base r l transistor T5 and the base of transistor T6 to [all to :1 value which is lower than the value oi the retcrcnce potential on the base of threshold transistor T7. This causes a reduced current from transistor T6 through the cornnrcu emitter resistor 72, which switches threshold transistor '17 to its conductive stutc. "he output of threshold trarristrr T7 energizes ouput transistor T11! to provide an oupnt signal at 67.

Rclercnce is now made to FIG. 1 for a description of the operation of the computer system. It is initially assumed that none of the peripheral device units 51, 52, 53 and 54 are running and that the basic processor unit is proceeding with the execution of instructions of a program stored in the high speed memory 12. Each instruction in the memory is addressed by an address supplied from address generator 18 to the address ree' tcr 14 of the memory. The addressed instruction is transterrcd from its storage location in memory 12 to the memory data i'egis ter 16 from which it is supplied over lines 2-1 to the data bus 26, and then over lines 28 to the instruction register including the operation code register 30 and the unit register 32.

If the instruction thus staticized is an instruction involving a peripheral inputoutput device unit 51. 52, 53 or 54. the decoder 38 recognizes a p iplreral device operation code in the operation code re tcr Jill and eucrcires its output 3'9 to enable gates 36. the dt coder 34 recognizes the particular peripheral device unit called for by the instruction from the contents of the unit register 32. The

corresponding energized one oi the start request outputs of decoder 34. for example output 41, passes through enablcd galcs 36 to an input of the corresponding one of the "or gates 5%. The signal passed through the energitcd or gute activates the corresponding switch 60 and causes a current flow through the transistor T1 and the associated speed-weight resistor 61. The magnitude or value of the current drawn by the transistor T1 through the speedtveight resistor 61 is determined by the value of the resistor, and the current is proportional to the percentage of the hasic processor's total time required in the time interlaced servicing of the associated peripheral unit 51. The current thus drawn from the input of the threshold detector 66 is not enough to exceed the threshold of the detector ztnd no inhibiting output signal is generated and applied over lines 67 and 48 to the gates 46.

The start request signal on output 41 of gates 36 is then passed through gates 46 and over line 41' to start or activate the peripheral device unit 51. The activnted peripheral device unit thereafter supplies a busy signal over its line 57, through the associated or gate 58 to the corresponding switch circuit 60c The switch circuit transistor Tl thereafter continues to draw current through the speed-weight resistor 61 so long as the peripheral device remains running.

The computer proceeds with servicing of the (:rtCtgl/id peripheral device unit 51 in time-interlaced fashion with the execution of its stored program. The computer then may reach another instruction calling for communication vrith another one ot' the peripheral device units, for example unit. 53. The resulting start request output 43 from the gates 36 is applied to the corresponding switch circuit 60 including transistor T3 turd the speedn eight resistor 03 to increase the current draun from the input of the thre hold detector 66. it the total current drawn by the transistor T1 associated uith the alreadv-energized peripheral device unit 51 and the transistor T3 associated with the presently-interrogated peripheral device unit 53 does not exceed the threshold of the threshold detector 66, the second peripheral device unit 53 is also activated and serviced in tirnc interlaced fashion.

'l he computer may then rcitch an instruction involving a third peripheral devil: unit such as unit 5-1. and the cncrgirtation oi the co responding stviuh circuit 6t} and a ma; cuusc a total current llorv iron: the input ot' the thrust t l detector 66 which extends the preset current reference threshold of the detector. In this ca e. the detector 66 provides an output on lines 67 and which inhil'rits. gates 46 and prevents the cnrgizalion rr activation of the corresponding peripheral device urrit -i. Ar the ame time. the output at 67 from the 1 shold detector 66 i upplicd over line 6) and through inverter 1 to the decrcrnerrting input 22 or program counter 'l his carr e the computer to recycle through a preccdirrg instruction, rltcr which the computer again accesses the peripheral device instruction ju t prcviousl r prevented trout o; executed. The computer can thus operate in an idling loop until one of the busy peripheral device uni i lirrishes its work and stops running. When this liltptnlt't'r the start request i 'nal tor the third peripheral device unit 6-; will he ace ted it i ttlllcict'tl proccssor time is a 'lrthle for its servicing. The closed idling loop arrangement of the computer may include provisions pctru g interruption [or the performance of a program or routine not invohiug a peripheral device unit.

'1 he operation of the system is such that an instruction rc uesting communication with a. peripheral device unit .virl be executed only if the time required by the basic processor unit [or time-interlaced servicing of the periplrcr ri device unit. when added to the time required tor servicing. al c: vcrrcrr'i tct,l peripheral device unit will not exceed ill; lrusic processor units cupahilitv. l he num- *,'7, tier oi pcIIpheral tlpvrtr) units pcrurittcd to he siarulttu Iii] till

Tit

neously operative depends on the time required for their servicing. The simultaneously-running peripheral device units may include a large number of slow-speed units. a relatively small number of high-speed units, or an intermediate number of mixed highspeed and lowls claimed is:

The combination of a threshold detector circuit,

a plurality of peripheral device units,

an analog circuit for each of said peripheral device units, each analog circuit when energized having an output signal amplitude coupled to said threshold detector circuit which is indicative of the speed of operation of the corresponding peripheral device unit,

means to energize each analog circuit When the corresponding peripheral device unit is active and when the corresponding peripheral device is desired to be made active, and

means under control of said threshold detector circuit conditionally to inhibit activation of a peripheral dcvice unit desiring to be made active.

2. The combination of a source of start signals for each of a corresponding number of peripheral device units,

a thre hold detector circuit having a common input terminal,

a plurality of peripheral device units each having a start signal input and a busy signal output,

an analog circuit for each of said peripheral device units. each analog circuit having an input coupled to receive a corresponding start signal, having an input coupled to rectlve a corresponding busy signal, and having an output coupled to the common input terminal of said threshold detector, each analog circuit responding to one or the other or both of said signals to generate an output signal value indicative of the speed of operation of the corresponding peripheral device unit, and

means uridcr control of the output of said threshold detector circuit conditionally to Couple start signals to said peripheral device units.

3. The combination of a ha-ic processor tlnit having start request outputs for each of a corresponding number of peripheral device units.

a threshold detector circuit having a common input terminal,

a plurality of peripheral device units each having a busy signal output,

an analog circuit for each of said peripheral device units, each analog circuit having an input coupled to a corresponding start request output. having an input coupled to a eorresopnding busy signal output. and having an output coupled to the common input terminal of said threshold detector. each analog circuit having an output signal value indicative of the proportion of the basic processor unit's time required in the servicing of the corresponding peripheral device unit. and

means under control of the output of said threshold detector circuit conditionally to couple said start request outputs of said basic processor unit to said peripheral device units.

4. The combination of a ba ic processor unit having start request outputs for each of a corresponding number of peripheral dev'ce units.

a threshold detector circuit having a common input terminal.

a plurality of peripheral device units each having a busy s gnal output.

an analog circuit for each of said peripheral device units. each analog circuit having an input coupled to a corresponding start request output, having an Ill] input coupled to a corresponding busy signal output. and having an output coupled to the common input terminal of said threshold detector, each analog circult having an output signal value indicative of the proportion of the basic processor units time required in the servicing of the corresponding peripheral device unit, and

means under control of the output of said threshold detector circuit to couple said start request outputs from said basic processor unit to said peripheral device units unless the time required for tiineinterlaced servicing of the peripheral device unit, when added to the time required for servicing alreadyenergized peripheral device units, would exceed the basic processor units capability.

5. The combination of a source of service signals for each of a corresponding number of peripheral device units.

a threshold detector circuit having a common input terminal.

a plurality of peripheral device units each having a start signal input and a busy signal output,

an analog circuit for each of said peripheral device units, each analog circuit including an or gate having inputs coupled to receive a corresponding start signal and to receive a corresponding busy signal. a transistor switch circuit having an input coupled to the output of said "or" gate and a resistor coupled from the output of said switch circuit to the common input terminal of said threshold detector circuit. said resistor having a value indicative of the speed of operation of the corresponding peripheral device unit. and

means under control of the output of said threshold detector circuit conditionally to couple start signals to said peripheral device units.

6. A computer system comprising a basic processor unit having start request outputs for each of a corresponding number of peripheral device units,

a current threshold detector circuit having a common input terminal,

a plurality of peripheral device units each having a busy signal output,

an analog circuit for each of said peripheral device units, each analog circuit including an "or gate having an input coupled to a correspont'ling busy signal output, a transistor switch circuit having an input coupled to the output of said or"' gate and a resistor coupled from the output of said switch circuit to the common input terminal of said threshold detector circuit. said resistor having a value indicative of the proportion of the basic processor units time required in the servicing ol the corresponding peripheral device unit,

means to couple each start request output from said basic processor unit to an input of the or gate in the analog circuit of a corresponding one of said peripheral device units, and

means to couple the output of said threshold detector circuit to said basic processor unit to inhibit the energization of a peripheral device unit if the time required for time-interlaced servicing of the peripheral device unit, when added to the time required for servicing already-energized peripheral device units. would exceed the basic processor units capability.

7. A computer system comprising a basic processor unit having an instruction register and an instruction decoder providing start request outputs for each of a corresponding number of pcripheral device units,

a current threshold detector circuit having a common input terminal,

a plurality of peripheral device units each having a busy signal output,

an analog circuit for each or" said peripheral device imim CllCil mining circuit including: (in or [late having an input coupled 1U 11 CUI'IC5FPIHiiHg hwy signal Output, n ti'iU ifiisiOl' switch c ii'ruit having an input i In iiic riinpiit 0i Riliil in guts and a rc iii -ta r wupicii ilfilii the Ollifui of xiii! switch LiXLllii in the common input iUi'iiifi-l'ii of :Ziili threshold d:- lcumi' ciruuiL said i'csiutor having a \"HILK! indicative 0f the proportion 0f the b'iisic processor unit's time rcquirnl in 11s servicing oi the corresponding pci'iphcml de ice uniL mums to cilupie each start i'cqucat Output from said instruction decoder to an input of the or gate in iii: arming circuit of (I corresponding Qnc Of sail peripheral iicviirii wits, and

maxim under control (if the output Of said thrcsiwiii iictccloi ciruuit 1n cmsrie Raid start requml untpuis ROBERT (L Bziiiii'i', Pi'iiiii R H ZAFHE. xiviai'wi [Am i 

1. THE COMBINATION OF A THRESHOLD DETECTOR CIRCUIT, A PLURALITY OF PERIPHERAL DEVICE UNITS, AN ANALOG CIRCUIT FOR EACH OF SAID PERIPHERAL DEVICE UNITS, EACH ANALOG CIRCUIT WHEN ENERGIZED HAVING AN OUTPUT SIGNAL AMPLITUDE COUPLED TO SAID THRESHOLD DETECTOR CIRCUIT WHICH IS INDICATIVE OF THE SPEED OF OPERATION OF THE CORRESPONDING PERIPHERAL DEVICE UNIT, MEANS TO ENERGIZE EACH ANALOG CIRCUIT WHEN THE CORRESPONDING PERIPHERAL DEVICE UNIT IS ACTIVE AND WHEN THE CORRESPONDING PERIPHERAL DEVICE IS DESIRED TO BE MADE ACTIVE, AND MEANS UNDER CONTROL OF SAID THRESHOLD DETECTOR CIRCUIT CONDITIONALLY TO INHIBIT ACTIVATION OF A PERIPHERAL DEVICE UNIT DESIRING TO BE MADE ACTIVE. 